The performance of computer systems, especially personal computers, has improved dramatically due to the rapid growth in computer architecture design and in particular to the performance of computer memory.
Computer processors and memories however have not pursued the same pace of development through the years. Memories are not able to deliver enough response speed to processors. To reduce the gap in speed between the processors and memories, the concept of memory hierarchy was introduced. A memory hierarchy comprises a number of different memory levels, sizes and speeds. The memory located near or inside the processor is usually the smallest and fastest and is commonly referred to as cache memory. Cache memory needs to be fast to accommodate the demand of the processor therefore it is usually constructed from static-type memory or static random access memory (SRAM).
Cache memory plays an important role in the computer memory hierarchy. Computer instructions and data which are most likely to be reused are stored temporarily in the cache memory because the processor can access these instructions or data much faster than accessing them from the slower computer main memory.
Almost all of cache memories are managed by hardware meaning that the cache operation is physically controlled by logic circuits. Implementation of cache memory is not the same in different type of processors since the logic control circuits are different. In some implementations, a processor-cache interface uses a 64-bit bus for data and an additional bus for tag. The tag bus width varies, but has nominally been 16 bits for a total of 80 bits wide for tag plus data. If the cache block (or cache line) size is four times the data bus width, then no useful information appears on the tag bus for three out of every four bus cycles therefore the bus is not utilized efficiently.
There is a need for a logic to implement a cache SRAM so that the utilization of data and tag bus can be more efficient. This logic could implement a 64-bit data bus plus a 16-bit or more tag bus but the same logic is also usable to implement a 96-bit bus.